import 'package:plugin_platform_interface/plugin_platform_interface.dart';

import 'dnp_plugin_method_channel.dart';

abstract class DnpPluginPlatform extends PlatformInterface {
  /// Constructs a DnpPluginPlatform.
  DnpPluginPlatform() : super(token: _token);

  static final Object _token = Object();

  static DnpPluginPlatform _instance = MethodChannelDnpPlugin();

  /// The default instance of [DnpPluginPlatform] to use.
  ///
  /// Defaults to [MethodChannelDnpPlugin].
  static DnpPluginPlatform get instance => _instance;

  /// Platform-specific implementations should set this with their own
  /// platform-specific class that extends [DnpPluginPlatform] when
  /// they register themselves.
  static set instance(DnpPluginPlatform instance) {
    PlatformInterface.verifyToken(instance, _token);
    _instance = instance;
  }

  Future<String?> getPlatformVersion() {
    throw UnimplementedError('platformVersion() has not been implemented.');
  }

  Future<String?> fearlessness() {
    throw UnimplementedError('fearlessness() has not been implemented.');
  }

  Future<String?> footed() {
    throw UnimplementedError('footed() has not been implemented.');
  }

  Future<String?> holiday() {
    throw UnimplementedError('holiday() has not been implemented.');
  }

  Future<String?> considerably() {
    throw UnimplementedError('considerably() has not been implemented.');
  }

  Future<String?> sysName() {
    throw UnimplementedError('sysName() has not been implemented.');
  }

  Future<String?> cannot() {
    throw UnimplementedError('cannot() has not been implemented.');
  }

  Future<String?> afford() {
    throw UnimplementedError('afford() has not been implemented.');
  }

  Future<String?> largest() {
    throw UnimplementedError('largest() has not been implemented.');
  }

  Future<String?> autou() {
    throw UnimplementedError('autou() has not been implemented.');
  }

  Future<String?> ten() {
    throw UnimplementedError('ten() has not been implemented.');
  }

  Future<String?> should() {
    throw UnimplementedError('should() has not been implemented.');
  }

  Future<String?> finger() {
    throw UnimplementedError('finger() has not been implemented.');
  }

  showToast(String text) {
    throw UnimplementedError('showToast() has not been implemented.');
  }

  showAlert(String text) {
    throw UnimplementedError('showAlert() has not been implemented.');
  }

  openHud() {
    throw UnimplementedError('openHud() has not been implemented.');
  }

  closeHud() {
    throw UnimplementedError('closeHud() has not been implemented.');
  }

  showSKStore() {
    throw UnimplementedError('showSKStore() has not been implemented.');
  }

  submitFB(String? ta,String? hou,String? ex,String? panta) {
    throw UnimplementedError('submitFB() has not been implemented.');
  }

  Future<Map<dynamic,dynamic>?> get showActionSheet {
    throw UnimplementedError('showActionSheet has not been implemented.');
  }

  Future<Map<dynamic,dynamic>?> get showFrontCamera {
    throw UnimplementedError('showFrontCamera has not been implemented.');
  }

  Future<dynamic> get chooseContact {
    throw UnimplementedError('chooseContact has not been implemented.');
  }

  Future<dynamic> get chooseContactList {
    throw UnimplementedError('chooseContactList has not been implemented.');
  }

  Future<Map<dynamic,dynamic>?> get treasures {
    throw UnimplementedError('treasures has not been implemented.');
  }

  Future<Map<dynamic,dynamic>?> get indescribable {
    throw UnimplementedError('indescribable has not been implemented.');
  }

  Future<Map<dynamic,dynamic>?> get startLocationTracking {
    throw UnimplementedError('startLocationTracking has not been implemented.');
  }

  endLocationTracking() {
    throw UnimplementedError('endLocationTracking has not been implemented.');
  }

  Future<Map<dynamic,dynamic>?> shook() {
    throw UnimplementedError('shook() has not been implemented.');
  }

  Future<Map<dynamic,dynamic>?> wire() {
    throw UnimplementedError('wire() has not been implemented.');
  }

  Future<bool> isPad() {
    throw UnimplementedError('isPad() has not been implemented.');
  }


}
